# $Id: PKGBUILD 184415 2013-05-06 19:38:57Z foutrelis $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>

pkgbase=nx
pkgname=('libxcomp' 'nxproxy' 'nx-x11' 'nx-xcompext' 'nxagent' 'x2go-agent' 'nx-headers')
pkgver=3.5.0.20
pkgrel=2
arch=('i686' 'x86_64')
url="http://wiki.x2go.org/"
license=('GPL')
#options=('!makeflags') # '!strip')
makedepends=('libjpeg-turbo' 'libpng' 'bash' 'perl' 'libxml2' # runtime dependencies from subpackages
             'xproto' 'freetype2' 'libxaw' 'libxrender' 'libxp' 'libxpm' 'libxdamage' 'libxrandr' 'libxcomposite' 'libxtst' 'xorg-sessreg' # makedepends
             )
source=(http://code.x2go.org/releases/source/nx-libs/nx-libs-$pkgver-full.tar.gz
        keyboard_rule.diff)
md5sums=('9dd4b22579cf048c14c9c75302553f18'
         'f681bc66827cd7ddff4b81b983c20401')

build() {
  cd "${srcdir}/nx-libs-$pkgver"
  
  # fix keyboard layout with xkeyboard-config >= 2.6 - doesn't solve proper layout detection
  # upstream needs to do much more work in that area
  patch -Np1 -i ${srcdir}/keyboard_rule.diff
  
  # debug flags
#  export CFLAGS="-march=x86-64 -O1 -g -pipe"
#  export CXXFLAGS="-march=x86-64 -O1 -g -pipe"

  # honour CFLAGS in X11 build - upstream fixed so far only the other libs
  # From xorg-x11-6.9.0-r3.ebuild
  pushd "${srcdir}/nx-libs-$pkgver/nx-X11"

  HOSTCONF="config/cf/host.def"
  echo "#define OptimizedCDebugFlags ${CFLAGS} GccAliasingArgs" >> ${HOSTCONF}
  echo "#define OptimizedCplusplusDebugFlags ${CXXFLAGS} GccAliasingArgs" >> ${HOSTCONF}
  # Respect LDFLAGS
  echo "#define ExtraLoadFlags ${LDFLAGS}" >> ${HOSTCONF}
  echo "#define SharedLibraryLoadFlags -shared ${LDFLAGS}" >> ${HOSTCONF}
  popd

  # fix a broken Makefiles
  sed -i "s:-o root -g root ::" nxcompshad/Makefile.in

  make \
    PREFIX=/usr \
    CONFIGURE="./configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --includedir=/usr/include"
    
  # fake install
  mkdir $srcdir/fakeinstall
  make PREFIX=/usr DESTDIR="$srcdir/fakeinstall" install
}

package_libxcomp() {
  
  pkgdesc="NX X compression library"
  depends=('libjpeg-turbo' 'libpng' 'gcc-libs')
	
  install -dm755 ${pkgdir}/usr/lib/nx
  cp -a ${srcdir}/fakeinstall/usr/lib/nx/libXcomp.so* ${pkgdir}/usr/lib/nx
  # symlinks
  cd ${pkgdir}/usr/lib/
  ln -sv /usr/lib/nx/libXcomp.so{,.3,.3.5.0} .
}

package_nxproxy() {

  pkgdesc="NX proxy"
  depends=('libxcomp')
  
  install -dm755 ${pkgdir}/usr/{bin,share/man/man1,lib/nx/bin}
  cp -a ${srcdir}/fakeinstall/usr/lib/nx/bin/nxproxy ${pkgdir}/usr/lib/nx/bin/nxproxy
  cp -a ${srcdir}/fakeinstall/usr/share/man/man1/nxproxy.1 ${pkgdir}/usr/share/man/man1
  # the wrapper
  cp -a ${srcdir}/fakeinstall/usr/bin/nxproxy ${pkgdir}/usr/bin
}

package_nx-xcompext() {
  
  pkgdesc="Xcompext/Xcompshad library for NX"
  depends=('libxcomp' 'nx-x11')
	
  install -dm755 ${pkgdir}/usr/lib/nx
  cp -a ${srcdir}/fakeinstall/usr/lib/nx/libXcompext.so* ${pkgdir}/usr/lib/nx
  #cp -a ${srcdir}/fakeinstall/usr/lib/nx/libXcompshad.so* ${pkgdir}/usr/lib/nx

  # symlinks
  cd ${pkgdir}/usr/lib/
  ln -sv /usr/lib/nx/libXcompext.so{,.3,.3.5.0} .
  #ln -sv /usr/lib/nx/libXcompshad.so{,.3,.3.5.0} .
}

package_nx-x11() {
 
  pkgdesc="NX-X11 lib for the NX framework"
  depends=('libxcomp')
	
  install -dm755 ${pkgdir}/{usr/bin,usr/lib/nx/{X11,bin}}
  cp -aR ${srcdir}/fakeinstall/usr/lib/nx/X11/* ${pkgdir}/usr/lib/nx/X11
  # nxauth
  cp -a ${srcdir}/fakeinstall/usr/lib/nx/bin/nxauth ${pkgdir}/usr/lib/nx/bin
  # the wrapper
  cp -a ${srcdir}/fakeinstall/usr/bin/nxauth ${pkgdir}/usr/bin
}

package_nxagent() {
  
  pkgdesc="NX X server based on Xnest"
  depends=('nx-xcompext' 'libxml2')
	
  install -dm755 ${pkgdir}/usr/{bin,lib/nx/bin,share/nx}
  cp -a ${srcdir}/fakeinstall/usr/lib/nx/bin/nxagent ${pkgdir}/usr/lib/nx/bin
  # the wrapper
  cp -a ${srcdir}/fakeinstall/usr/bin/nxagent ${pkgdir}/usr/bin
  
  # additional files for documentation
  cp -a ${srcdir}/fakeinstall/usr/share/nx/SecurityPolicy ${pkgdir}/usr/share/nx
  
  cp -a ${srcdir}/fakeinstall/usr/lib/nx/libXcompshad.so* ${pkgdir}/usr/lib/nx
  # symlinks
  cd ${pkgdir}/usr/lib/
  ln -sv /usr/lib/nx/libXcompshad.so{,.3,.3.5.0} . # files should move to nx-compext pkg
}

package_x2go-agent() {
  
  pkgdesc="Wrapper arround nxagent to use with x2goserver"
  depends=('nxagent')
  provides=('x2goagent')
  replaces=('x2goagent')
	
  install -dm755 ${pkgdir}/usr/{bin,lib/x2go/bin,share/{pixmaps,x2go/versions}}
  # this is a nxagent symlink
  ln -sv /usr/lib/nx/bin/nxagent ${pkgdir}/usr/lib/x2go/bin/x2goagent 

  # the wrapper
  cp -a ${srcdir}/fakeinstall/usr/bin/x2goagent ${pkgdir}/usr/bin
  
  cp -a ${srcdir}/fakeinstall/usr/share/pixmaps/x2go.xpm ${pkgdir}/usr/share/pixmaps
  cp -a ${srcdir}/fakeinstall/usr/share/x2go/rgb ${pkgdir}/usr/share/x2go
  cp -a ${srcdir}/fakeinstall/usr/share/x2go/versions/VERSION.x2goagent ${pkgdir}/usr/share/x2go/versions
}

package_nx-headers() {

  pkgdesc="NX headers"
  
  install -dm755 ${pkgdir}/usr/include/nx
  cp -aR ${srcdir}/fakeinstall/usr/include/nx/* ${pkgdir}/usr/include/nx
}  
